<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>变量的声明</title>
</head>
<body>
    <script>
        // var 
        //es6 let const

        // 1.var具有变量提升的功能，而let和conste没有。当js解析到var和function的时候会把他们放在最前
        // 2.var 没有块级作用域，只有全局和函数（局部）作用域
        // 3.var 定义的变量可以在再次被定义，而let const不能重复定义/声明
        // 4.const定义的变量不能再次赋值，而let可以
        console.log(a)
        var a = 2
        /*
        var a;
        a=2
        */

        // console.log(b)
        // let b = 3

        foo()
        function foo(){
            console.log('i am foo')
        }

        if(true){
            var c = 5
        }
        if(true){
            let d = 6
        }
        console.log(c)
        // console.log(d)
        var e = 6
        var e = 7
        let f = 8
        // let f = 9
        f = 9
        const g = 10
        // g = 11
        const h = {x:1}
    </script>
</body>
</html>